package com.lmk.qs.jdbc;



import com.lmk.qs.utils.JDBCUtil;

import java.sql.*;
import java.util.Scanner;

public class JDBCDemo01 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入账号");
        String name=sc.next();
        System.out.println("请输入密码");
        String pas=sc.next();
        boolean flag=new  JDBCDemo01().login(name,pas);
        if(flag){
            System.out.println("登录成功");
        }else {
            System.out.println("登陆失败");
        }
    }

    /**
     * Statement 的登录验证
     * @param name 用户名
     * @param pas 密码
     * @return 是否成功
     */
    public boolean login(String name,String pas){
        if (name==null||pas==null){
            return false;
        }
        Connection con=null;
        Statement st=null;
        ResultSet rs=null;
        try {
            con= JDBCUtil.getConnection();
            String sql="select *from emp where empname='"+name+"' and password= '"+pas+"'";
            st=con.createStatement();
            rs=st.executeQuery(sql);
            return  rs.next();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            JDBCUtil.close(rs,st,con);
        }
        return false;
    }

    /**
     * PreparedStatement 的简单验证
     * @param username 用户名
     * @param password 密码
     * @return 是否成功
     */
    public static boolean loginAgain(String username,String password){
        //判断输入数据是否为空
        if (username==null||password==null){
            return false;
        }
        Connection conn = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        //登录注册+获取连接
        try {
            conn = JDBCUtil.getConnection();

            //定义sql语句
            String sql = "select * from emp where empname = ? and password = ?";

            //获取preparedStatement对象，防止sql注入
            preparedStatement = conn.prepareStatement(sql);
            //填充占位符的值
            preparedStatement.setString(1,username);
            preparedStatement.setString(2,password);
            //获取结果集
            resultSet=preparedStatement.executeQuery();

            //如果结果集有解，则登录成功。
            return  resultSet.next();

        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            //关闭数据库连接，回收资源
            JDBCUtil.close(resultSet,preparedStatement,conn);
        }
        return false;
    }

}
